import java.util.ArrayList;
import java.util.List;

public class LongestPalindromicSubstring {

    /**
     * 给你一个字符串 s，找到 s 中最长的回文子串。
     * @param s
     * @return
     * 解题思路：中心枚举法
     */
    public  static  String longestPalindrome(String s) {
        if(s.length()==1){
            return s;
        }
        int step =1;
        List<String> ansList = new ArrayList<>();
        String ans = "";
        for (int i =0;i<s.length();i++){
            ans = ans + s.charAt(i);
            while (i-step>=0&&i+step<s.length()&&s.charAt(i-step)==s.charAt(i+step)){
                ans=s.charAt(i-step)+ans+s.charAt(i+step);
                step++;
            }
            ansList.add(ans);
            ans = "";
        }
        ans = ansList.get(0);
        for (int i=1;i<ansList.size();i++){
            ans = ans.length()>ansList.get(i).length()?ans:ansList.get(i);
        }
        return ans;

    }

    public static void main(String[] args) {
        System.out.println(longestPalindrome("aaaa"));
    }
}
